{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 1. Bayesian optimization\n",
    "*Deep Bayes summer school, 2018*\n",
    "\n",
    "*A. Zaytsev, Y. Kapushev*\n",
    "\n",
    "Content\n",
    "1. Bayesian optimization overview\n",
    "2. Overview of libraries\n",
    "3. One dimensional example\n",
    "4. AutoML: optimization of hyperparameters for machine learning model"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# When Bayesian optimization?\n",
    "\n",
    "* Optimization of \"heavy\" functions \n",
    "* The target function is a blackbox, typically noisy, while smooth\n",
    "\n",
    "\n",
    "* Construction a regression model using available data\n",
    "* Take into account uncertainty of the regression model\n",
    "* Gaussian process regression is OK"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Optimization workflow:\n",
    "1. Construct a regression model $\\hat{f}(x)$ of a function $f(x)$ using the sample $D = \\{(x_i, f(x_i))\\}_{i = 1}^n$\n",
    "2. Select a new point that maximize an acquisition function\n",
    "$$\n",
    "x_{new} = \\arg\\max\\limits_x a(x)\n",
    "$$\n",
    "3. Calculate $f(x_{new})$ at the new point.\n",
    "4. Add the pair $(x_{new}, f(x_{new}))$ to the sample $D$.\n",
    "5. Update the model $\\hat{f}(x)$ and go to step 2."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Examples of the acquisation functions \n",
    "\n",
    "#### Upper confidence bound (UCB) \n",
    "\n",
    "$$\n",
    "UСB(x) = \\hat{f}(x) + \\beta \\hat{\\sigma}(x),\n",
    "$$\n",
    "$\\hat{f}(x), \\hat{\\sigma}(x)$ - mean and standard deviation of the Gaussian process regression model at $x$.\n",
    "\n",
    "#### Expected Improvement (EI) \n",
    "\n",
    "$$\n",
    "EI(x) = \\mathbb{E}_{p(\\hat{f})} \\max(0, f_{min} - \\hat{f}(x)). \n",
    "$$\n",
    "\n",
    "\n",
    "Usually we use logarithm of EI."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<img src=\"EI_vs_logEI.png\">"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 2. Bayesian optimization libraries:\n",
    "\n",
    "| Library        | #commits           | #stars | #last commit |\n",
    "| ------------- | -----:| -----:| -----:|\n",
    "| hyperopt      | 950   | 2275  | 02.07.2018 | \n",
    "| BayesOpt      | 515   | 157   | 30.03.2018 | \n",
    "| GPyOpt        | 463   | 303   | 26.06.2018 |\n",
    "| GPflowOpt     | 407   | 107   | 16.04.2018 | \n",
    "| pyGPGO        | 273   | 78    | 07.11.2017 | \n",
    "\n",
    "More libraries for Matlab (SUMO) and other languages.\n",
    "\n",
    "*Actually it is not hard to write your own library on top of your favorite Gaussian Process Regression library.*\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Additional libraries\n",
    "\n",
    "We need libraries for\n",
    "* Gaussian process regression **GPy** (see previous seminar)\n",
    "* Gaussian process regression-based Bayesian optimization **GPyOpt**\n",
    "\n",
    "See more use cases of **GPyOpt** at http://nbviewer.jupyter.org/github/SheffieldML/GPyOpt/blob/master/manual/index.ipynb"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "To install GPyOpt run the following line"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Collecting GPyOpt\n",
      "\u001b[?25l  Downloading https://files.pythonhosted.org/packages/9c/40/ca8f080d74d9f4e29069faa944fcfb083e8693b6daaba0f1e4bc65c88650/GPyOpt-1.2.5.tar.gz (55kB)\n",
      "\u001b[K    100% |████████████████████████████████| 61kB 762kB/s \n",
      "\u001b[?25hRequirement already satisfied: numpy>=1.7 in /home/yeahrmek/miniconda3/lib/python3.6/site-packages (from GPyOpt) (1.14.5)\n",
      "Requirement already satisfied: scipy>=0.16 in /home/yeahrmek/miniconda3/lib/python3.6/site-packages (from GPyOpt) (1.1.0)\n",
      "Requirement already satisfied: GPy>=1.8 in /home/yeahrmek/miniconda3/lib/python3.6/site-packages (from GPyOpt) (1.9.2)\n",
      "Requirement already satisfied: six in /home/yeahrmek/miniconda3/lib/python3.6/site-packages (from GPy>=1.8->GPyOpt) (1.11.0)\n",
      "Requirement already satisfied: paramz>=0.9.0 in /home/yeahrmek/miniconda3/lib/python3.6/site-packages (from GPy>=1.8->GPyOpt) (0.9.1)\n",
      "Requirement already satisfied: decorator>=4.0.10 in /home/yeahrmek/miniconda3/lib/python3.6/site-packages (from paramz>=0.9.0->GPy>=1.8->GPyOpt) (4.3.0)\n",
      "Building wheels for collected packages: GPyOpt\n",
      "  Running setup.py bdist_wheel for GPyOpt ... \u001b[?25ldone\n",
      "\u001b[?25h  Stored in directory: /home/yeahrmek/.cache/pip/wheels/33/1d/87/dc02440831ba986b1547dd11a7dcd44e893b0527083066d869\n",
      "Successfully built GPyOpt\n",
      "Installing collected packages: GPyOpt\n",
      "Successfully installed GPyOpt-1.2.5\n",
      "\u001b[33mYou are using pip version 10.0.1, however version 18.0 is available.\n",
      "You should consider upgrading via the 'pip install --upgrade pip' command.\u001b[0m\n"
     ]
    }
   ],
   "source": [
    "!pip install emcee\n",
    "!pip install GPyOpt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import GPy\n",
    "import GPyOpt\n",
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "\n",
    "# auxiliary functions\n",
    "import utility\n",
    "% matplotlib inline\n",
    "from IPython.display import clear_output\n",
    "from tqdm import trange\n",
    "\n",
    "# emcee sampler is required to run Entropy search in GPyOpt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import utility"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 3. One dimensional example\n",
    "\n",
    "We demonstrate concepts using one-dimensional example.\n",
    "\n",
    "Let us consider Bayesian optimization for one-dimensional function **Forrester**:\n",
    "$$\n",
    "f(x) = (6 x - 2)^2 \\sin(12 x - 4).\n",
    "$$\n",
    "\n",
    "The optimization problem is the following:\n",
    "$$\n",
    "f(x) \\rightarrow \\min, x \\in [0, 1].\n",
    "$$"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# we can load it from GPyOpt library\n",
    "forrester_function = GPyOpt.objective_examples.experiments1d.forrester()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[0.90929743]])"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "forrester_function.f(np.array([0.5]))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[(0, 1)]"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "forrester_function.bounds"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "forrester_function.plot()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# Select the region where we search the optimum\n",
    "space = [{'name': 'x', 'type': 'continuous', 'domain': (0, 1)}]\n",
    "design_region = GPyOpt.Design_space(space=space)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Select the initial design\n",
    "from numpy.random import seed # fixed seed\n",
    "seed(123456)\n",
    "\n",
    "initial_sample_size = 5\n",
    "initial_design = GPyOpt.experiment_design.initial_design('random', design_region, initial_sample_size)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAgIAAAG3CAYAAADGqj2XAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzs3Xd8leX9//HXlU0WZJIwEzYBAsoIKCAqCApatFVLFUSsVG3lW6XWrVhHpfrTVq2zKrjqqoKCCyc4GTIDyAwQAoGQPcg61++PkEgkQMZJ7iTn/Xw88iC5z33u8zkHyHmf6/rc122stYiIiIhn8nK6ABEREXGOgoCIiIgHUxAQERHxYAoCIiIiHkxBQERExIMpCIiIiHgwBQEREREPpiAgIiLiwRQEREREPJiP0wU0hsjISBsXF+d0GSIiIk1i1apVGdbaqPrct1UGgbi4OFauXOl0GSIiIk3CGLOrvvfV1ICIiIgHUxAQERHxYAoCIiIiHkxBQERExIMpCIiIiHgwBQEREREPpiAgIiLiwVrlOgK1VVxcTGZmJnl5eZSXlztdjojH8PPzIzIykrZt2zpdiojH89ggUFxczO7duwkLCyMuLg5fX1+MMU6XJdLqWWspKioiNTUVf39/AgICnC5JpEXLKSpt0P09dmogMzOTsLAwIiMj8fPzUwgQaSLGGAIDA4mMjOTgwYNOlyPSoh3KL2bKs9836BgeGwTy8vIIDQ11ugwRjxUSEsLhw4edLkOkxdqXU8Qlz3zH9oP5DTqOxwaB8vJyfH19nS5DxGP5+PhQVlbmdBkiLVJxWTlXzVtJem4xL80Y1qBjeWyPAKDpABEH6f+fSP39/YPNbNyXy/NXDCGpW0SDjuWxIwIiIiIt0acb05n3bQpXnh7H2X3bN/h4CgIiIiItRO7hUm55Zx39OoRyy7l93HJMBQERN8jIyGDatGl06NABYwxjxoxxuqST+vLLLzHGMG/ePKdLEZFaevKL7WTkl/DgRYn4+3i75ZgKAh6g8hf+8b6+/75hp540BwsWLGDOnDmOPf7s2bN54403uOaaa3j55Ze5/fbbHavlaGvWrGHOnDmkpKQ4XYqINNCezEJe+HonF53akQGd3LcYl0c3C3qaKVOmcN555x2zvUePHg5U414LFixg/vz5joWBJUuWMH78eO666y5HHv941qxZwz333MOYMWOIi4urdtvo0aMpKirS2TMiLcTcjzbj5QU3je/t1uMqCHiQU089lcsvv7xRHyMvL4+QkJAab6t80/HxaVn/7EpLSykvLz/hCnj79+8nPDy8CatqOC8vL63qJ9JCbNibw6J1+5h1Vg9i27Zx67E1NSDVlJWVMXfuXBISEggICCAiIoILL7yQ9evXV9svJSUFYwxz5szhjTfeYPDgwbRp04brr78egOnTp2OM4eDBg8yYMYP27dsTFBREampq1THeeOMNRo4cSUhICIGBgSQlJfH2228fU9PixYs544wziIyMpE2bNnTp0oWLLrqILVu2ADBmzBjmz58PUG3K4+i573379nHttdfSpUsX/Pz86NChAzNnzuTAgQPVHmvOnDkYY0hOTubGG2+kU6dOBAQEHHf6pHJ/ay3z58+v9thHv0bHu9/RQ/aVr1lOTg7XXnst0dHRBAQEcPrpp/PDDz8ccwxrLc899xxJSUkEBwcTHBzMgAEDqkYl5syZw5VXXgnAmWeeWVXb9OnTgeP3CBQUFHDrrbfSvXt3/P39iYmJYdq0aezatavafkff/8UXX6Rfv374+/vTtWtX/vGPf9T4eolI/Ty7dAfB/j5cNaqb24/dbD6aGWNeACYBB6y1/Y9smwNcDVSuQ3qbtfYDZyps+QoLC8nIyKi2zd/fv9on+Msuu4w333yTcePGce2117J//37+/e9/M2LECJYtW8Ypp5xS7f4LFizgscce49prr+Waa645ZrXGcePGERMTw5133klBQQHBwcEA3HHHHdx///1MmDCBe++9Fy8vL959910uvvhinnjiCf74xz8C8NVXX3HBBRfQv39/br31Vtq1a0daWhqffvop27Zto1evXtx+++24XC6WLVvGyy+/XPXYp512GgC7d+9mxIgRlJSUcNVVV9G9e3e2bdvGU089xRdffMHKlSuPufjNZZddRps2bZg9ezbGGGJjY2t8TS+66CJ69OjB1KlTGTVqFDNnzqz22PUxfvx4oqKiuOuuuzh06BCPPPIIEydOZOfOndX+rqZOncqrr75KUlISt99+O+3atWPz5s28/fbb/O1vf+Oiiy5i3759PPvss9x222307dsXgO7dux/3sUtLSxk/fjzffPMNv/nNb5g9ezZbt27lqaee4pNPPmHlypV06tSp2n2efvpp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dy7l5TV3ztZGZmYmN9xwA927dycgIICIiAgGDx7MQw89VG2/J598knPOOYeOHTvi5+dHbGwsl19+eY19DMYYpk+fzueff86IESMIDAykU6dOzJ07F4CsrCyuuuoqoqOjCQwMZNKkSaSlVT/Vp/I1SE5OZtasWcTExNCmTRuSkpL47LPPav38Vq5cyYUXXkhkZCT+/v707t2b+++//5i/IxFpedbvzeFQQQln9I5yrAZ9ZGsElctFphwqIC4iiEkDOxDcRHM9dfXBBx/w5JNPcs011zBjxgwWLlzIww8/TFhYGLfddttx73f77bfjcrlYtmwZL7/8ctX200477bj3WbduHe+88w4XXngh3bt3p7S0lI8++ohbbrmFHTt28Mwzz9TrOVx88cUsXbqUa665hsTERIqKiti0aRNffvklN910U9V+Dz/8MMOHD2fWrFmEh4ezYcMG/vOf//D555+zfv16IiIiqh139erVvP/++8ycOZNp06bx5ptvcssttxAQEMD8+fOJi4tjzpw5bNu2jccee4xp06bx6aefHlPftGnT8Pb25uabbyYvL49nnnmGCRMm8OGHHzJ27NgTPrfFixdz0UUX0aNHD2bPnk14eDjfffcdd911F2vWrOGtt96q12smIs3Dlz8dxBgY3dO5IIC1ttV9DR482J7Mxo0bT7pPfSzfecgm3PWh7Xvnh7brzYts3zs/tAl3fWiX7zzUKI9XG1988YUF7EMPPVS1befOnRawgYGBdufOnVXbXS6X7devn42Jial2jCuuuMJW/HM58bZKd999twWqHbuwsNC6XK5j9r388sutl5eXTUtLO6bmF1988YTPLTs72wL22muvPeF+1lqbn59/zLZPP/3UAnbu3LnVtgPWGGO///77qm3FxcU2JibGGmPs9ddfX23/G264wQJ28+bNVdsqX4Nhw4bZ4uLiqu179uyxQUFBtk+fPtWO0bVrV3vGGWdU/VxUVGTbt29vR40aZUtLS6vt+8gjj1jAfvHFFyd93s1ZY/0/FGkpJv/7a3vB48safBxgpa3ne6amBtyopuUiC0vKKSgub9LlIuti8uTJxMXFVf1sjOHMM89k//795Ofnu/Wx2rRpUzW9UFJSQmZmJhkZGYwfPx6Xy8XKlSvrdUx/f39++OGHk56qGBQUBIDL5SInJ4eMjAwGDhxI27Zt+eGHH47Z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\n",
      "text/plain": [
       "<Figure size 576x504 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "uniform_dense_grid = np.linspace(0, 1, 200).reshape(-1, 1)\n",
    "\n",
    "# plot function: curve and values at the initial design points\n",
    "utility.plot_one_dimensional_function(forrester_function, \n",
    "                                      uniform_dense_grid, \n",
    "                                      initial_design)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## We defined the problem - now we create a machine to solve it\n",
    "\n",
    "1. A black box that evaluates the target function\n",
    "2. What kind of the regression model we need\n",
    "3. How do we optimize the acquisition function\n",
    "4. What kind of the acquisition function we use\n",
    "5. Should we use optimizer in batch or continuous mode?"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# The target function\n",
    "objective = GPyOpt.core.task.SingleObjective(forrester_function.f)\n",
    "\n",
    "# Model type\n",
    "gp_model = GPyOpt.models.GPModel(exact_feval=True, optimize_restarts=10, verbose=False) \n",
    "# exact_feval - are evaluations exact?\n",
    "# optimize_restarts - number of restarts at each step\n",
    "# verbose - how verbose we are\n",
    "\n",
    "# Optimizer of the acquisition function, the default is 'LBFGS'\n",
    "aquisition_optimizer = GPyOpt.optimization.AcquisitionOptimizer(design_region)\n",
    "\n",
    "# The acquisition function is expected improvement\n",
    "acquisition_function = GPyOpt.acquisitions.AcquisitionEI(gp_model, design_region, optimizer=aquisition_optimizer)\n",
    "\n",
    "# How we collect the data\n",
    "evaluator = GPyOpt.core.evaluators.Sequential(acquisition_function)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# Now we are ready to construct the machine\n",
    "bayesian_optimizer = GPyOpt.methods.ModularBayesianOptimization(gp_model, design_region, objective, \n",
    "                                                acquisition_function, evaluator, initial_design)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Run the first six iterations"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# Stopping criteria\n",
    "max_time = None \n",
    "max_number_of_iterations = 5\n",
    "tolerance = 1e-8 # distance between consequitive observations"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAagAAAEYCAYAAAAJeGK1AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzsvXl0XGd9//967p19Rhrt1r7Zkpd4JXJMFsgCIZuTsqahIXwTlpQWyJeeNpT28IVTvj09UOBHmy9tKQUCLW2AhiUQSGhWkpDgxLEdJ94k2ZZl2Za1zIykkTTLvff5/XEXjRwntoOtkazndc7YM3f9zJV03/ezPJ9HSClRKBQKhWK+oRXbAIVCoVAoToYSKIVCoVDMS5RAKRQKhWJeogRKoVAoFPMSJVAKhUKhmJcogVIoFArFvEQJlEKhUCjmJUqgFAqFQjEvUQKlUCgUinmJr9gGnAlVVVWytbW12GYoFHPPjh32/+vXF9cOheIs8OKLL45IKatPtd2CEqjW1la2bt1abDMUirmnrMz+X/3+K84DhBCHTmc7FeJTKBQKxbxECZRCoVAo5iVKoBQKhUIxL1lQOaiTkc/nGRgYIJPJFNsUheKUhEIhGhsb8fv9xTZFoZj3LHiBGhgYoKSkhNbWVoQQxTZHoXhNpJSMjo4yMDBAW1tbsc1RKOY9Cz7El8lkqKysVOKkmPcIIaisrFTevmLBYlnWnJ5vwQsUoMRJsWBQv6uKhUx3dzd9fX1zdr7zQqAUCoVCcW7JZDKk02lCodCcnVMJ1FniZz/7GUII9u7de06Of/3115NKpV5z/Uc+8hF2794NwN/93d/NWnfJJZecNTs+9alP8dRTT53RPrfffjv333//q5Zv3bqVu+66C4Ann3ySZ5999qzYeC74+c9/zhe/+EXA/lm71/q1ePDBB/nc5z43F6YpFHNCIpHAtCzKy8vn7JxKoM4S9913H5dddhn33XffOTn+r371K8rcbgIn4Vvf+harVq0CXi1QZ+vGPzo6yu9+9zve+ta3nvY+hmG85rquri7uuece4PUF6vWO8Ua2eyPcdNNNfOYznwFOT6BuuOEGfvGLXzA1NXXObFIo5pJEIkEkEkX3zV1t3fklUEKcm9cpSKfTPPPMM3z729/mBz/4wax1X/rSl1izZg3r1q3zbnAvvvgi69atY926ddx9992sXr0agO9+97t84hOf8PbdvHkzTz75JGC3eRoZGWFycpIbbriBdevWsXr1an74wx8CcMUVV7B161Y+85nPMD09zfr167n11lsBiMVigF1F5p5vzZo13r5PPvkkV1xxBe9973tZsWIFt956K1LKV33PH//4x1x77bXe5y984Qts3LiR1atXc+edd3r7XHHFFXzqU5+iq6uLf/zHfwTg0Ucfpauri87OTh588EHvvJs3b6avr49vfOMbfO1rX2P9+vU8/fTT3H777XzsYx9j06ZNfPrTn+b555/n4osvZsOGDVxyySXs27fPu2Y33XQTV111FW9729v44Ac/yM9+9jPPxltvvZUHHnhg1vdwz+vyiU98gu9+97vedf785z/Pm970JtasWeN5xO7P5tlnn+XnP/85d999N+vXr2f//v3cc889rFq1irVr13LLLbcAdq7piiuu8L6rQrGQmZycZHp6mtJ4OdZJ7g3niqKVmQshQsBTQNCx434p5eeLZc/vwwMPPMC1115LZ2cnlZWVvPjii1x44YU89NBDPPDAA2zZsoVIJEIikQDgjjvu4Otf/zpvfetbufvuu8/oXA8//DD19fX88pe/BGBsbGzW+i9+8Yt8/etfZ4fbXLSAn/zkJ+zYsYOXXnqJkZERNm7c6HlD27dvZ9euXdTX13PppZfy29/+lssuu2zW/r/97W9573vf633+xCc+4YWxbrvtNh588EFuvPFGAHK5nNc38fbbb6evr4/nn3+e/fv3c+WVV9Lb2+sdp7W1lY997GPEYjH+4i/+AoBvf/vbDAwM8Oyzz6LrOuPj4zz99NP4fD4effRR/vqv/5of//jHAGzbto2dO3dSUVHBb37zG772ta/xzne+k7GxMZ599lm+973vndE1rqqqYtu2bfzzP/8zX/nKV/jWt77lrbvkkku46aab2Lx5s3ctvvjFL3Lw4EGCweCsMGxXVxdPP/00N9988xmdX6GYbySTSSwpiZbEmUN9KqoHlQWuklKuA9YD1woh3vx7HVHKc/M6Bffdd5/35HzLLbd4Yb5HH32UO+64g0gkAkBFRQWpVIpUKuUJw2233XZGX3HNmjU88sgj/OVf/iVPP/008Xj8tPd95plneP/734+u6yxZsoTLL7+cF154AYCLLrqIxsZGNE1j/fr1J63UOXbsGNXVMw2In3jiCTZt2sSaNWt4/PHH2bVrl7fuD//wD2fte/PNN6NpGh0dHbS3t59Wru5973sfuq4DthC/733vY/Xq1fzZn/3ZrHNdffXVVFRUAHD55ZfT09PD8PAw9913H+95z3vwnWFI4t3vfjcAF1544WlVLK1du5Zbb72V73//+7POVVNTw9GjR8/o3ArFfMMdvxeJlSCFhmXNnUIVTaCkTdr56Hdec6jNZ4dEIsHjjz/ORz7yEVpbW/nyl7/Mj370o5OGyE6Fz+ebNc7gZONlOjs72bZtG2vWrOGzn/0sX/jCF34v+12CwaD3Xtf1k+ZzwuGwZ1Mmk+FP//RPuf/++3n55Zf56Ec/OsveaDQ6a98Ty6tPp9y68Bj/5//8H6688kpeeeUVfvGLX7zuuT74wQ/y/e9/n3vvvZcPfehDrzruqa6zey1e6zqcyC9/+Us+/vGPs23bNjZu3Ojtk8lkCIfDp9xfoZjPpNNpcrkcpbEypjMGlrkIBApACKELIXYAQ8AjUsotJ9nmTiHEViHE1uHh4bk38hTcf//93HbbbRw6dIi+vj4OHz5MW1sbTz/9NFdffTX33nuvlyhPJBKUlZVRVlbGM888A8B//ud/esdqbW1lx44dWJbF4cOHef755191vqNHjxKJRPjABz7A3XffzbZt2161jd/vJ5/Pv2r5W97yFn74wx9imibDw8M89dRTXHTRRaf9XVeuXOmF5tybelVVFel0+qRVeoX893//N5ZlsX//fg4cOMDy5ctnrS8pKWFiYuI19x8bG6OhoQHAyxe9Frfffjv/8A//AOAVjhTS0tLC7t27yWazpFIpHnvssdc93okU2ur+rK688kq+9KUvMTY2RjptP3d1d3d7+UWFYqGSSCSwpCQYi5HN5zHn8NxFFSgppSmlXA80AhcJIV711yyl/KaUsktK2VUYXpov3HfffbzrXe+atew973kP9913H9deey033XQTXV1drF+/nq985SsA3HvvvXz84x9n/fr1szytSy+9lLa2NlatWsVdd93Fm970pled7+WXX+aiiy5i/fr1/M3f/A2f/exnX7XNnXfe6YWdCnnXu97F2rVrWbduHVdddRV///d/T21t7Wl/1xtuuMEr2igrK+OjH/0oq1ev5pprrmHjxo2vu29zczMXXXQR1113Hd/4xjdeNZbixhtv5Kc//alXJHEin/70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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Run five iterations\n",
    "for iteration in range(max_number_of_iterations):\n",
    "    bayesian_optimizer.run_optimization(max_iter=1, max_time=max_time, \n",
    "                                        eps=tolerance, verbosity=False) \n",
    "  \n",
    "    bayesian_optimizer.plot_acquisition()\n",
    "    clear_output(wait=True)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Now we run more iterations - 25"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "bayesian_optimizer = GPyOpt.methods.ModularBayesianOptimization(gp_model, design_region, objective, \n",
    "                                                acquisition_function, evaluator, initial_design)\n",
    "\n",
    "max_number_of_iterations = 25\n",
    "bayesian_optimizer.run_optimization(max_iter=max_number_of_iterations, max_time=max_time, \n",
    "                                    eps=tolerance, verbosity=False)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Analyze problems"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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NpGTk3PO9928eTO33XYbDoeDkpISLrvsMl577TUAFi9eTGVlJYZhUFdXR1NT0zvu39rayomrebz44ossWbKEuXPn8sILL7B79+7h6z784Q+fdN9bbrkFwzCYNm0akydPPqd9dTfffDMOhwNIBfHNN9/MnDlz+NznPnfStq666iry8/MBuOyyyzhw4ACdnZ2sXbuWm266Ced5Tkl88IMfBGDhwoWnfR1ONW/ePG6//XaeeOKJk7ZVXFxMS0vLeW1biHQUDAbxZGRgxsGMj16r+fgKKBsEg0FeeOEFPv7xj1NTU8M3vvENfvGLX5x2iuxsnE7nSccZnO54menTp9PY2MjcuXP58pe/zFe/et7HNp/WiZ05DofjtPtzfD7fcE0DAwN8+tOf5qmnnmLXrl184hOfOKlev99/0n1Pba8+l3brEx/jH//xH7n88st58803+e1vf3vGbX30ox/liSee4LHHHuNjH/vYOx73bK/z0Gvxbq/DqX73u99x33330djYyKJFi4bvMzAwgM/nO+v9hUhnkUiE/v5+/L4sunqiJC0ZQY0ZTz31FHfeeSdHjhyhqamJY8eOUVtby6ZNm7jqqqt47LHHhneUB4NBcnNzyc3NZfPmzQD89Kc/HX6smpoaduzYgWVZHDt2jG3btr1jey0tLWRkZHDHHXfw4IMP0tjY+I7buFwuEonEOy5/3/vex5NPPolpmnR2dvLyyy+zePHic36us2bNGp6aG/pQLywspK+v77Rdeif63//9XyzL4tChQxw+fJgZM2acdH1WVha9vb3vev/u7m4qKioAhvcXvZu77rqL//zP/wQYbhw50aRJk9izZw+xWIxwOMwf//jHMz7eqU6sdejf6vLLL+frX/863d3d9PX1AaljRob2LwoxVg1N7xkZfp76xU/Zvv21Udu2BNRfaO3atdx4440nXXbTTTexdu1arrnmGm644Qbq6+upq6vjm9/8JgCPPfYY9913H3V1dSeNtJYtW0ZtbS2zZ8/ms5/9LBdffPE7trdr1y4WL15MXV0dX/nKV/jyl7/8jtvce++9w9NOJ7rxxhuZN28e8+fPZ9WqVfz7v/87paWl5/xcr7vuuuGmjdzcXD7xiU8wZ84crr76ahYtWnTG+1ZXV7N48WJWr17N9773Pbxe70nXX3/99fz6178ebpI41Re+8AX+4R/+gQULFpx1VFNSUsKsWbO4++67T3t9VVUVt9xyC3PmzOGWW25hwYIFZ3y8U91666184xvfYMGCBRw4cIA77riDuXPnsmDBAj772c8Od1u++OKLXHfddef12EKkE601oVAIT0YGR5taaD7axMV17/xcGinqvUxF2aW+vl6fesLCvXv3MmvWLJsq+ss1NTWxZs0a3nzzTbtLOSfLly9n3bp1o3osxPmKRqPMnTuXxsbG89pHdyG1t7fzkY985LSjs7H+nh2Tht6vZziWULxTT08Pe/fuxZ9XyBM/+yXVNbXcccv1ZGd4z37nM1BKbT/bGdRBRlDiPH3rW9/i6NGjdpfxrjZs2MCsWbP4zGc+Y1s4ARw9epRvfetbtm1fiAshFAphWhbtgTBHjrzN+1aswOlyjNr2pc3cZjU1NWNm9ASwZMkSu0s4oyuvvJIjR87pbNIj6mxTnkKku6HpPZfPxzNPr2f5isvJzfLhHMX1JMfFCGosTVOKiU3eq2Ks6O7uZmBggGB3L0ePvM3Ky1aQ4XHhkIA6d16vl66uLvmPL9Le0PmgTm0QESIdhUIhEqbJ5s1bWbJsBfk5ftwux6iuyD/mp/gqKytpbm6ms7PT7lKEOKuhM+oKkc4syyIcDhPt72f/vn3c+uFb8bqcBNpaSeRkDR8YP9LGfEC5XC45O6kQQlxA4XCY/v5+tmzfwSWLllCSn0N3OEBnoAOn0xi1gBrzU3xCCCEurGAwSLi7mz27dnPl1auIRvvoaG+jsKCAqqqqUatDAkoIIcQw0zTp6enhjV27uGjBPPKys2hrO05uTs6oz1ZJQAkhhBgWCoUIhUI07tzFNVesor21GZ/Hw+TJk0e1QQIkoIQQQpwgGAyyraGBmTOmY6BRWjNlypTzPivAhSABJYQQAoBEIkF3dzc7duxg6SWXYMXjVFdXD58yaLRJQAkhhABS03vbtm2jsLCQvMxM8vLyTjoH3GiTgBJCCAGkpve2bNnCwgULyMjIoKamxtZ6JKCEEEIQi8U4cOAAfX19zJ49m6qqKlwul6012R5QSimHUup1pdQ6u2sRQoiJKhQKsX79ehYtWkRBQcGoHYx7JrYHFPA3wF67ixBCiImsqamJ3bv3cNlll1FdXW13OYDNAaWUqgSuA35oZx1CCDGRDQwM8MILL7BgQR2TJ0/G4/HYXRJg/wjqP4EvANa73UApda9SqkEp1SALwgohxIXX3t7Oyy+/zLXXXktJSYnd5QyzLaCUUmuADq319jPdTmv9iNa6Xmtdb2e7oxBCjDumCevW0XbffVxrWVw8fz6GYfe45c/sXM18GXCDUupawAtkK6We0FrfYWNNQggxMZgmXH01essWFkUiXOzx4LrtNli/Hhyjd1r3M7EtKrXW/6C1rtRa1wC3Ai9IOAkhxCh57jnYuhUViWAArlgMtm5NXZ4m0mcsJ4QQYvS8/jo6Ejn5skgEduywp57TSIuA0lpv1FqvsbsOIYSYMBYswPL5Tr7M74e6OnvqOY20CCghhBCjK3nVVRwrK2PA5UIrBZmZsGQJrF5td2nDxvwp34UQQpy/9kCAv5szh3+44w7qnc7UyGn16rRpkAAJKCGEmHAsy2Ljxo24vF4m3XcfpOkhPDLFJ4QQE0xXVxcvvfQSy5cvT4s1996NBJQQQkwgWmveeustmpqauOKKK3Ck0ZTeqSSghBBiAunu7mbDhg1cfPHFlJeX213OGUlACSHEBNLa2srmzZtZtWoV2dnZdpdzRhJQQggxQUQiERobG8nNzWXmzJkopewu6YwkoIQQYoJob2/nD3/4A1dddRUFBQV2l3NWElBCCDEBJBIJmpubOX68hYULF+L3++0u6awkoIQQYgIIBAJs3LiRiy6anfbNEUMkoIQQYpzTWtPR0UFDQwOrVq1K62OfTiQBJYQQ41x3dzdvvvkmhmEwY8aMtDml+9lIQAkhxDjX2dnJK6++yiWXXDImmiOGSEAJIcQ4FovF6Ojo4NDBwyxbtmzMTO+BBJQQQoxrnZ2d/OlPf2LSpCrKy8vTemmjU0lACSHEOKW1JhgM0tDQwLJly8bU9B5IQAkhxLjV09PD4cOHiUSizJs3j5ycHLtLOi8SUEIIMU4FAgG2bNnC3LlzKCgoSPuljU4lASWEEONQMpkkFAqxe/eeMde9N0QCSgghxqFgMMgbb7yB35/B5MmTx8TSRqeSgBJCiHEoEAjQsH07CxcuHJOjJ5CAEkKIcScajRIIBDjSdIQlS5aMqWOfTiQBJYQQ40xXVxcNDQ1UVVVSUlIyZpY2OpVtAaWU8iqltiml3lBK7VZKfcWuWoQQYrzQWhMKhXh9xw4uvvjiMTt6AnDauO0YsEpr3aeUcgGblVLPaa232FiTEEKMab29vRw9epRgV5AFCxZIQL0XWmsN9A3+6hr80nbVI4QQ40EwGGTbtm3MmjWTgoKCMbW00als3QellHIopXYAHcDzWuutp7nNvUqpBqVUQ2dn5+gXKYQQY4RlWYRCId7cvZvFixeP2e69IbYGlNba1FrXAZXAYqXUnNPc5hGtdb3Wur6oqGj0ixRCiDGiu7ubvXv3YijF9OnTx9zSRqdKiy4+rXUYeBG4xu5ahBBirAoGg7z22mvMmzeP/Pz8Mbe00ans7OIrUkrlDv7sA64C9tlVjxBCjGWmadLV1cX+/W+xZMmSMT+9B/Z28ZUBP1ZKOUgF5S+01utsrEcIIcasUCjE9u3bKS4uoqKiYkwubXQqO7v4dgIL7Nq+EEKMJ8FgkIbt21mwYMG4GD1BmuyDEkII8d4lk0k6OjpoPnaMRYsWSUAJIYRID+FwmG3btlFTU0NRURFut9vuki4ICSghhBjjQqEQr7322rgaPYEElBBCjGmmaXL8+HECgSB1dXXk5ubaXdIFIwElhBBjWDgc5pVXXmHGjGkUFxdjGOPnY338PBMhhJiAQqEQDQ0NLFu2bFxN74EElBBCjFmmaXL48GGi0Shz5swZF8c+nUgCSgghxqju7m5efvll5s6dS3Fxsd3lXHASUEIIMUalpve2c/nll4/p8z69GwkoIYQYgyzLYu/evYBm+vTpuFwuu0u64CSghBBiDOrp6eGFF15g8eLFjNdTEUlACSHEGNTV1cWOHW9w2WWXjfnzPr0bCSghhBhjtNY0NjaSlZXJ9OnTx/x5n96NBJQQQowxPT09bNy4kWXLllFYWGh3OSNGAkoIIcaYzs5O3nzzTVasWIHP57O7nBEjASWEEGOI1ppXX32VsrIyJk+ebHc5I0oCSgghxpC+vj42b97MsmXLxuWxTyeSgBJCiDGkpaWFAwcOsHLlSpxO206KPiokoIQQYgx54YUXmDp1KtXV1XaXMuIkoIQQYozo6+tjy5YtLFmyhOzsbLvLGXESUEIIMUYcPnyY1tZWLr/88nF77NOJJKCEEGKMeP7555kxYwYVFRV2lzIqJKCEEGIMiEQiNDQ0cMkll+D1eu0uZ1RIQAkhxBiwa9cuuru7WbVqld2ljBoJKCGEGAM2bNjArFmzxuWJCd+NbQGllKpSSr2olNqjlNqtlPobu2oRQoh01tfXR2NjIytWrMDhcNhdzqix8yivJPB3WutGpVQWsF0p9bzWeo+NNQkhRHoxTQ7+13/xwd27WRWNgmnCBAkp2wJKa90KtA7+3KuU2gtUABJQQggBqTC6+mpmvfwy8xIJjHvvhUcfhfXrJ0RIpcU+KKVUDbAA2Hqa6+5VSjUopRo6OztHuzQhhLDPc8+ht2zBk0ikPqz7+mDrVnjuObsrGxW2B5RSKhP4JfCA1rrn1Ou11o9oreu11vXj9bTGQghxWq+/DtHoyZdFIrBjhz31jDJbA0op5SIVTj/VWv/KzlqEECLdWPPnEz91QVi/H+rq7ClolNnZxaeAR4G9Wuv/sKsOIYRIV5319ezJzsb0+UApyMyEJUtg9Wq7SxsVdnbxLQPuBHYppYbGq1/SWj9rY01CCJE2Nm7axNOrVvGjm2/Gt39/auS0evWEaJAAe7v4NgPjf7VDIYR4D+LxOK+88goXL1qE90MfSo2gJhjbmySEEEK8U0tLC2+99RarVq2aECuXn845jaCUUsWkpuTKgX7gTaBBa22NYG1CCDFhvfjii5SWljJ9+nS7S7HNGQNKKXU58EUgH3gd6AC8wAeAKUqpp4Bvna49XAghxHvT29vLtm3bqK+vJzMz0+5ybHO2EdS1wCe01kdPvUIp5QTWAFeRahUXQghxATQ3N3Pw4EE+85nPTNjpPThLQGmtHzzDdUng6QtekRBCTGCmafLSSy9RW1tLZWWl3eXY6pyaJJRSP1FK5Zzwe41S6o8jV5YQQkxMwWCQLVu2sGTJErKysuwux1bn2sW3GdiqlLpWKfUJ4A/Af45cWUIIMTE1NTVx9OhRli1bNqGn9+Acu/i01t9XSu0GXgQCwAKtdduIViaEEBNMNBrl1VdfZebMmZSWltpdju3OdYrvTuBHwEeBx4FnlVLzR7AuIYSYcAKBAJs2beJ973sf2dnZdpdju3NdSeImYLnWugNYq5T6NamgWjBShV1wpplaov7112HBggm1XIgQIv1ZlsXbb79NV1cXCxcuxDBkHYVzneL7wCm/b1NKLRmZkkbA4Em/9JYtEI2i/P7UgosT5KRfQoj0FwqF2LRpE3V1dRQWFtpdTlo4Y0Qrpb6slMo/3XVa67hSapVSas3IlHYBPfcceutWVCSC0hr6+rC2bCHxzDN2VyaEEEBqem/btm2sWLGCnJycs99hAjjbCGoX8Ful1ADQCHSSWkliGlAHbAD+dUQrvBBefz11kq8TqGiU9vXr6Z8zh8LCQnJzcyd8x4wQwh4DAwMcOnSIWCzOnDlzcMjMDnD2gPqQ1nqZUuoLpJY5KgN6gCeAe7XW/SNd4AWxYEFqWq+vb/iihNuNWVdHuLeXcDiMz+ejtLSUgoICCSohxKgKBAJs3LiR+vqF5OXl2V1O2jjbXriFSqly4HbgGeD7wP8ArwG+Ea7twlm9OrXPKTMTrRRJr5cDBQX8b8ykrLqG4rJKTMvi8Ntvs2fPHrq7u+2uWAgxQWit6ezs5M03d7NixQpyc3PtLiltnG0E9T3gj8BkoOGEyxWgBy9Pfw5HqiHiuedQO3bQXlTEkfJyDjz/Eo8++hM+escdVE6aSrw/QntHK28dOEBebi7V1dW43W67qxdCjGPhcJjdu3eTkeGjtrYW56mneJ/AlNb67DdS6rta60+NQj1nVF9frxsaGs5+w7OIxWLs3r2bnmiUp9c9j9fn5+677iYvOwO3y0FPuIv29jachkFVVZV01Agx1g2NSsJhe+s4jQMHDvDQQw9RUVHBPffcQ1FRkd0ljTil1Hatdf3ZbndOjfbpEE4Xksfjoby8HI/DwUfvvA3Lsnjkke/THuwlMpAkK6eAadNm4vJ4ebupiYMHD5JMJu0uWwgxzsRiMbq6ujh48BBLly6V6b1TTNgjwUpKSsjJyWGgr5u77/4rMvyZfP+7D9MeCBEZSJDEoLp2CmVlFYTCYfbs2UPfCU0WQgjxl+rq6mL79u2UlBRTWlqKy+Wyu6S0MmEDSinFpEmTcDscxHqD3HH77ZSWVfD97z5Mc1sXvdEY/bEkWTn5TJ46HVNr9u/fT3t7u92lCyHGAa01gUCAxsZG6uvryc8/7SGnE9qEDSgAv99PeXk5sWgfTqufm265mWkzZ/P97/wXLa0d9PXHicYTOBxupk6dQWZWNkePHaOpqYlz2XcnhBDvpqenh/b2dtra2li4cKFM753GhG8XKSsro7u7m0BXB5XVk7lhzQ34fD6+/53/j7s+/tdUV1agtcbrclJZXUOgvY32jjZisRhTpkyRjhsBQDKZJBqN0t/fTywWIx6PY5omlmWhtcYwDBwOBy6XC4/Hg9frJSMjA4/HY3fpwiadnZ00NjYyefJkCgoKZHrvNCb8p6tSitraWvbs2UOgo5WS8klceeVVeDxeHn3kO9x5173UTq7GssDUmvyiEtxeL83NR9m7dy9Tp07F5xs7h4SJC0NrTW9vL93d3fT09NDf348G0GAYBi63G6fTiWE4MJTCsixi8QS9kQjJRGL4YHC3y0VWVhY5OTnk5ub+RSsImKZ5UjhC6v09FIpyyET6SCQSdHd3s+vNN7li1SqZ3nsXEz6gALxeL5WVlRw5coS+cIDc3ELet3wZbq+X//nR97np1ju4aPZMtE79hePPzGHylGk0vX2Iffv2MXXq1Al/5suJIhKJ0NXVRVdXF0nTRKHIzMyiuDQXf4Yfr8+H0+FEK0BrtAZOWJlEa422LAZiAwxEo/T19RLq7qarqwvDMMjOzj7npbdM06S7u5vu7m4ikQgDAwPowW0MGXoMBTidTrKyssjNzSUnJ0dG/zYKBAI0NTXRH40yd+5cmd57F7a+Q5VSPwLWAB1a6zl21lJcXExfXx+dgQ58GZlk+TwsqV9Ipj+Tp372P4SvvZ5LLllK0rKwPBq3y82UKdNpevsQb731FrW1tfJX0Diltaarq4uOjg4i0SgKRW5eHjk5uWRmZaGUQqMwLQtLa2LJJJAaNQFY1mBgKIXWqbxyuLxkZHvJyM6jREOsP0p3b5ju7hChUAiPx0NBQQHFxcW4HY7hU8XoujrCS5cSCIXo6enBNE2Uw0FGhp/ColI8Hg8OlwuXy5UauWkLM5EkHhsgEo3Q09dHMBTCUIqCggJKSkpkBmCUDTVH7Ny1i5kzZ5Kbmyt/LLwLu1+Vx4GHSS2fZLtJkybR399PW8tRqmumkeXzMHfWTLLuvZ8nfvwDwl1Brr76GrROvcncLge1U6Zx7MjbHD58mEQiQUlJid1PQ1wgpmnS2dlJe3s78UQCr9dHZUUV2Xl5GIYDy7JImhqNxjQtQGPp1FSwBaDB0hYKhWnp1M8aQKGUwrI0OvUbhnKRkVuENyefZF8vXd1dHDlyhPaWFmY98AC+nTshGsXy+VCzZtH50ENkFxSS7c/Bl5mFNfg4SimUAq0UJhrD4cTldOP1Z5KbX4gyYKC/n2BXgECgi0AgQEFBQeq4QNkfNip6enro7e1lz+7dfOQjH5G1987A1oDSWr+slKqxs4YTORwOJk+ezN69e2ltOUJl9WTAzaRJFXz8U3/Dz378KOFQkJtuvhVTazIsjdfjpLp2Ci1Hj3D02DESiQSVlZV2PxXxF7Asi46ODlpbW0kkk/gzsyivqCYjMxMNmKZFPJFAa41JKsgsABO0BhNN0kqFFVYqpCydWhvMtEwG5+FIJJJ0hbroDoXp7emmr6eX7p5u+iN9DMT7iff3UrtjO7O3bUMN7lNyRKP4du7k+ONP0Lh0OblZBRSXlFJQXITfn4GhFA5D4XQoDMXw7w4jFV4Oh8Lh8lBWXkVJWTmBjnYCnZ2EQiEqKiooLi6WxZJHWCAQYO/evWRlZzNp0iSZ3jsDu0dQZ6WUuhe4F6C6unrEt+fzpdbDOnToEO0txyirnIRSoIrz+Phf38eTTz7BD77/39x2510U5udiaY3P7aK8ahIdbS20tLYSj8epra2QhjVkAAAgAElEQVSV/+hjzNDUS0tLC7F4nKzMbKrKyvB6fZimRSyeRGtIaoukldq/pE1IaAsrCVqRGimZqc49c/A28WSC1pbjtBxvpiuQCoRgoJO+nm6y8vLIy8nBn5lDTl4uBfmF5FRXoXxApI9Zbx/EOzhVOMSdTFLd1cGxvn52N+9m8+aNBDra8fn9VFTVUD2phkm1k6murMTpMHA6HDgMheFUuJ0GDsDpcuJQUFRSRkFhEcebj3H02DFCoRCTJ0+WhooREo/HCYfD7Nq9m4tmzyYnJ0dOrXEGaR9QWutHgEcgtRbfaGwzLy+PyspKjh47hrujjYKSMgyV2tF8550f4/k//J7vP/xtbrrtTmZMm5aa1rGcFJWU43a7aWtrIZFIMHXqVHnzvUda6+FONEh1xo3kKbCDwSAtLS1E+/vx+TKoqa3Gm+HHsjTR/gQaTcKysEyNZUHSSo2kLDSmqVP7oEyT/oEYLcebaWtpprWlmbaW44SCAQqLSygrr6SoqISpU6dTWFJMYW4BTrcLj8uJMhQepdEkCIU6iYbDuEtLKLvuutRCxyesYmJ5vWQvvYT3v3852XlFJBIGMUvT0d7B24cOcbT5bRq2vpI6FGL6LGZdNIcZM2fjcToYcDvwoHCaFi6HgWlqHA5Fdc1kerrDNDcfZc+ePdTW1spJ80ZAIBAgEAhw7OhR1lx7rUzvncU5LRY7ogWkpvjWnUuTxIVaLPZcHTlyhPaODsrKK8nKzScWT9IfTxLpT/LGrp389ldPsvKqa1m2bBkZHgc+t4sMt5O+3jDHm4/iz8hg2rRp8tfoGcRiMSKRCNFolIGBgXe0SZ/IMAzcbjdutxuv14vP5yMjI4OMjIz3PFrt7e2lubmZvr4+XB4PRUWlZGTlYFqaeMLEQpNImiSTqek8ndQkB0dHfb29tLa00HL8WCqQWlvo6wlTXFpOaXkFZRVVVFRUUVRSitfpxHCCYYBTKRwKXE4nLqcDhwKsJF3BDnpCQRwOB0VFRZSWlqYaJK6+GrZuTZ100+/HXLSIo488QiAUwgLyCorIzS0kYUFSw8BAAtMyaWlvZ//uPezZvYtQMMBF8y9m4cLFlFdW4DYMnE6Fx2XgdjpwOAw8TgdJM8HRtw+TiMeoqqoaP/tU02CxWK01u3bt4vkNG2htbeWO229n3rx5I/qHV7o618ViJaDOQGvNoUOHCIZClFdUkZWdRyyRZCCeJBK3OH68hbX/8xiVkyZxw/UfJDsngwyvC5/LQSLWz9Gjb+NxuZg6dSoZGRmjVnc6O7E1uqenh0Qigak1Sik8Hg8etweny4XT4RwefWpAWxbJZJJkMkEsHicWG8CyLAxS+w4zMzOHjyc6l9d6YGCA48ePEwwGUQ4H+fnFZOblYyU1A0kTM2kStzTa0phJTbA7TMvxZlqPH6e17Thtx5uJDUQpLq2krLyc8soqysqqKCopxuV0YRjgUArDAMNQGA5wDe4TchoOHC4Dl2GgLZNAZzuhUBcOpSgsLKSsrOzkP2pMM9XFt2MH1NWlzm/mcNDf309zczPhcBjlcFBcXEZmTh7JpEXcsojFkqmpSUvT3tZBY8M2dr7eQH5hEcsuu5zp02eR4XLgcCk8zlRAuZ0ODANamo/S29tDaUkJVVVVI/NmGE1pEFChUIi9e/fyg0cf5bL3vY+VK1dSU1NjWz12GhMBpZRaC6wECoF24J+11o++2+1HO6Dg5JCqqKomOzuP/niSeNIkMpAk3NvHuqd/RfPRI9xy2x1Mrq3B53Hi97gwzTjNRw6D1kyZMmXCTpmYpkkoFCIYDNLb2zvcGu33Z5KRkYk/IxOX14tCYaEHW7EVqR63QX/u1EYNno7MTCToj0aI9keIRPuI9/cPj7Jyc3PJzc0lKysLQ+vhNm1z3jyOz5tHZzBIPJEgt6gIf1Y+yYRiwNJEoxE62tppbWujs7OdjpZW2lqawVCUlFZQWlFBWVklZRVVFBYW4DQcKIPh7jmnYWCgMRwKh8PAUBZOw8ChFMpQuBwODEOhLZOuQAeBQCcGDAfTe+mk6+npSY0CIxE8Hi/FJeV4/ZkkLYtEwiJhmsQSJsmkRX/C5I3G7fzplZfQlsXKK65h7px5eD0OXE6Fz+PE5TBwu510tBwnGAxQVFhITU3N2N6nmgYBdeDAARobG3lm3To+/clPMm/evAl7/OSYCKjzZUdAQaqr69ChQ4TCYUpKysgvLiERSxBLmPSbFtFogu2Njaxf92suWb6SlStXkun3kOF24VAWx4+9TTIeZ9KkSeP3XC9Df+W//josWIC+5hp6o1G6uroIhUIkEgkMtxt/ZhbZ/hw8GRmYWqEH9/8nLY1lmWil0FZqRKVg8IDX1P4/a3CkBaR2+vPnK5UDjGSSvr4eeiI9DPT2YiiFx+lkxmc/++c2ba+X4PTpvPRP/0Tc4SYc6CEQDNMV6CQY7CA2ECOvsJCCohKKikooL6ugrLxyeGe2UqkFLJVh4DRSPxuGgTI0ykj97BgMLOdgjYZKhZXDMIglYgQ7OgiGgyityc/Pp7y8HK/X+xe9/FprgsEgx48fpz8WI8ufRXFZOS6Pl2QyFU4Dpkk8qTETFv3xJPv37eWPf/gdTpeLK6+5nmnTpuJxGWS4DLweF26Hg3Cwk/b21rEfUjYHVCwWY+fOnTzzu9/h83i4fs0a5s6da0st6UAC6gLTWtPU1ESgq4v8vAJKyitSUymJJP0Jk2g8SXt7gF/+4mckEwluvPnDTKqqwu9z4XYq2luOMhCJUDI4ZTJW/qPH4/F3rC2nlDppbTm3w4H7+utR27ahIxG0z0dk7lze/OY3SQK+nByy/TkkDCeJuEkiZjGQiJNMJjHN1Fc8aaa63wbXrrPMJMlkMjXFZploLLSpMS0L00qmjiEyU98ty8K0TKykhbaSJFUSMxFnoKebsm1/4s5nn8V3wvm8+p1OfnjdGtouXkpedgFZRYUUFhZRVlJKTl5uarkipXE4UtNz2jBwqKFRUmqk5DBS8Xji5QapEZ6hDBwOI9XWrRTKgEhfH12BTrq7wzgMg8LCQkpKSv7iYDrVSS3ypklebj5FJaUYDieJpJnan2ZpBhImyXhqOvP1xgZefP45Kqsmcc31H6AwP4cMtwOvx4XP7SQY6KCzo21sh5TNAdXc3MyBAwf43g9/yO0f/jALFy6koqLCllrSwbkGVNp38aWLoTX7XC4XrW1t9McGqKqehMfjAsPA6TRwlRfziU/dz5/+9CqP/+C7LFh0CauuuJqCHD/FpVWEulIrF0ejUaZMmZJ2i0MOrS/X29tLX18fkUhkOJQAzMHwSC3ho4f3J2W//DKXvvIK7lgMBahoFNf27Wz7v/+X7ZNqiQ0kSMQSGE4XTqcTp9OF4XDgGPxyOhw4nAbKcKAcDhyGY7hrzzAcKENhOAwchgM1+OE/9LNSBg6nE6fTicbAjZMMlxvtc+N3KeaZJt5TGi68psn1xUUEb1xNRnYOOf5cHDgxBw9wVWpwdSJrcOimrcERncZQBspI/axUauf20O2VMlIjO8MANMl4nK5wiK5gF4l4HKfDQXlZGSUlJSP2b28YBqWlpRQWFtLa2kp7RwehcJDi4lIKi4pxOR0kkyYuQ5FwaVxJg6VLljBn7nw2/vEPfPc//50VV1zNpZcuw7RSByDn5qdG/Z0dbTgcjlE53GM8sSyLrq4u9h84QFFhIaWlpRQUFNhd1pggAXWeKisr8fl8HDlyhEMH36KqahI+fyauZGo/g9NQXL5iORfNmcO63/yab3/j/3HV1deyZMklZOUW43X7aG8/zt69e6mtrbV9DlprTXd3N6FQiHA4TDwex9IaY7BTzu10YSUsWtrbaWltoSMQoLO9nWCgnWBHB4ZycOuB/ThjsZMe12OaXJ6by4ybbyI3P5+M/AL83iycpoOkVlgKTJU6mFQZCm2mQk9rK7U00NDKq8N1pm7ncBhorXA4SLXEAcrSeBQ4DBhIRukJdxHt7sbpdFJpGLBxY6oDbkhGBr4lSzBMk572Nrppw5fhx5+ZRWZGJr4Mf+rBTphSHJL6LbVekYLhMFJKgWURiUTo7eulp7ub2MAASkFWVhZVFRXk5eWNWseW0+mkqqqK4uJijh8/TmdHG12BTkpLy8nNz8cwFE5L4zRM4g6F4fSx5vobmLNgIet+9SR7dr3BB2+5jfLiQixLk5NXiGmatLe343K5KCsrG5XnMR6Ew2Gi0Shv7NpFfV0dWVlZF3zkPF7JFN971N/fz+HDh4lEo+Tl5VNaXoHGIJE0iSdM+mMJYgmLA4cO8vvfPUMymeDK919L3dy5uJ1J2luOYWhNeXk55eXloz5tEovFho/J6O/vx9Qaj9+Py+GmIxji8JFjNB9ppuV4M93hIEUlxZSWl1FYkEOO10uGz0dBfj7Z2dmUbd9OyQMPoE4IAe330/nQQ3QuWUI0Gk1NwwFenw+fz4/fl4k3w49hpDr1kif2QygGlwT6M6VSDRRD+52MwYBwKBjoj9LX1013TxgzHsflclFYWEhxcTFel+sdbdosWQLr16MNg76+vuGOwmg0ijW4WF6qld2Hz+NNdRU6nScd02aaJqZlkkgkiMdiqRb5gQFSR0QxvChrXl5eWhxm0NfXR3NzM719fbhcbsrLK8nMyiaeTJK0NEnTIpEwicZT792XN77Ils0bueq6G1i8sJ5Mvwe/x0lH6zEivT3Dp4gYM2yc4tu/fz+73nyTX/32t3zyYx9j5syZFBcXj3od6UT2QY0Cy7Joa2ujtbUVrRTFhcXkFxZhaUXCSv2HH0iYRAYS7Nyxgxc2rMc0TZavWMnSSxcy0BMk1tdHdnY2NTU1F74V/TSNC+HeXgKBAMFgkGg0Smc4TCjcQ0tngJajLYS6AhQWF1NZVUVFTRVVFWUU5uZgxuMMRKOpUaLTSW5uLvn5+eTm5qa65N4lBHA4SCaT9PX1DX9FIpHh6UK3x0OGz09Ghj/VYu5243K5h9r10EOjGD3Yap6IE0/EGejvp78/SiTah2WaGEqRnZ1NQUHBO09b8S5t2u98uUx6e3uHz+s0dG4nrU/qJzyJAtxu9/AxWZmZmWRmZqbtAdrhcJhjx47RPzBAhj+TsvIKPF4fyaRJwrQwkxb9iSSxhMXhpqP86smfUlxWxgc/eDOFeTn4PQYtx4+QjA0wbdo0srOz7X5K58amgIpGo+zatYtn16/H5/Xy/iuvZN68eRN+cVgJqFHU39/P8ePHCYXDGA4H+bn55BcUgtOFaVokkhaxpEn/QJLd+/ax6cUNtLY0M3/uPBZcPIdMtxOf10tRURHl5eU4lTopWN7tA/XdaK3RySTqmmtg2zYYbFwITZ/Oz/7qrzh89CjBcJi+vj5yi4spr6yksqKCSZWVFBcVgdaYySTJeHxwx7/C6/WSnZ1NTk4O2dnZ7/wAPscQgFSwR6PR4cAaaj23Bt+Lmj+vHKGUGpz6S+3zUoP1KFKnSfH7/cM1jdR/+mQySSKRGD75IPDn/WdO55g70FJrTWdnJy0tLcTjCXLz8igpK8fhdJEYbEePJZP0x016I/386qlf0NrSzO133kXNpCr8LsXx5rdRlsXs2bPHxiKzNgVUU1MTBw8e5JHHHuOjt93GRRddRG1t7ajWkI4koGwQiURobW0lHA6n1ujL8JOVmUWmPwunx4tpaZJJk3gsSUtLG1tf28L2xtcwdYLaijIqy8uZM2sWC7/0JTxvvDE8GrHq64n86leDo7LE8Afm0FcymRz+8DRNk3g8jvHssyz85jdxx+PD9fU7HPzwiivoveyy1AhpsL35xDBQg9NbPp8Pr9dLZmYmfr9/xD+EhroFY7FY6uBd08Q0zeERlGEYOJ3O4ZUkMjIy0naUMlaYpklbWxvt7e0kTYuiwiKKSkvRWpEwB6eqBxL0J0w2v7KZF5//PTfc+CEWLVyIz6lpPnaYTJ+PmTNnpv+/hQ0BlUwm2blzJ3/aupVDTU3ccuONXHTRRbbvd04HElA2isfjdHV1EQ6HiUQiwyMDj8eD0+XGcDrBSJ1uwTKTHG9uZvfOnex+801KXtvOP+3dje+EzrO4x8NLf/3XdCxeTNKySA521cXicfoHp6O6w2G6uroIdHTS1xvhY8eP8ZG39nPi3/ZaKXo//3kin/vcn1ujBz/4h77cbnf6f9iICyoej9PS0kJnIIAyDEqKSsgvLMK0IJZIEkskicaSHDxwkJ8+8TiXLlvBVe+/CreO09F6jIKCAqZMmWL30zgzGwKqtbWVQ4cO8djPfsZll17KxXV1zJlj62nv0oa0mdvI7XZTVlZGWVkZiUSCvr6+4f0a8XicWKSP5OBxOVprCnJyWHnZZVx15ZWUPPII3t27Tno8ZyxGz8svs6GnB6fLhcvjwXA48Hu9eDIyyPB4qCwrY86sWRQXF1NSUkJ5YyPqgQdO6l5Tfj/ZK1aQLR1Y4gRut5uamhpKSkpobm6mrb2VrlAXJSVlZGfnDq7V52DWzOl8+v7P8dij3yfQ1cUtt9xCTn4RgUAHPp+P8vJyu59K2hieRm1rIx6PU1NdTWFhod1ljTkygrLZ0Os/3MW3bh3cdtvJq1dnZND8jW/QuWTJcLANGVrDbmg6Lisri8zMzLM2LgjxboaWTopEo3g83lQjhc9PImkS6U8Q6u7lf378I0Dxsb+6i0Sim0Q0yvTp09N3Oa9RHkGFQiH27dvH737/ewoKClixbBnz5s1Lu2Mf7SJTfGOVaZ6xLXpo/4zW+qQd9e/6WOfYuCDEiYaWTmppaaF/YIDMrGxKSspwuNwMxJME+wZ46smfc7z5GH/9iU+QGAjjdbmYNWtWWrTVv8MoB9T+/fs5dPgwj69dyz23387UqVPTfxp0FElAjWUSLCJNWJY13PGXSCbJzc2joKgEC4OeSIynf/MMe3bv5J5P3I3q7yMvL48ZM2ak33JIoxhQQ63lG19+mVg8ztVXXsns2bOlOeIE5xpQY6s/dqJwOGDNGvjyl1PfJZyETQzDoKSkhLlz51JeVkZvTzeHDuwjHGgnJ8PFLR/8P1y8YBHf/84jRC1reMHaiay9vZ1IJML2XbuYN3cuWVlZEk7vkTRJCCHOyul0UllZSXFxMS0tLQQCAbq7QxQWlXDTB1aT4XPzo0f/h9tuuRHH8eNkZmaSOzRqmUDi8TjBYJB9Bw5QWVFBUUHBhF814i8hASWEOGcndvwdPXqUzvZWnB4Pq1Zcis/n5qdr/5cPfWANHo+HWbNmjY2DeC+gjo4OotEoW7c3svrKK8jMzCQ/P9/ussYsmeITQpw3n8/HjBkzmDJlCg6greUoM2dO4QM33sD//vo3HDhwgMOHDw+vhD8RmKZJZ2cnTUeP4nS7KB9cVX6srTSSTmQEJYR4z/Lz88nJyUmd2qO9nUllpay59hp++cwzOBwOMjIymDRpkt1ljorOzs7B0dN2Llm4EL/fP35PUDpKJKCEEH8Rh8NBZWUl+fn5NDU1MbWmhstWrGDt2rXDi+eOqZXP3wOtNR0dHRxraSHc28uMKVPIz89Pz5b7MUTGnkKICyIjI4NZs2ZRXV3NkoULWb58Od/5znfYsWMH/f39dpc3orq6uujt7WXLttdYtmgRXq+X0tJSu8sa82QEJYS4YJRSlJeXk5ubi8fjwTRNvvWtb+F2OLi0uxvHzp3vaYX+dKa1pq2tjeMtLXQEu/jA9GspKCjA5/PZXdqYJwElhLjghkZTfr8fp1Jk33xzamWUgYFxt+xWMBikt7eXhsZGltbX4/P5ZPR0gcgUnxBiRBiGQU1NDXeXljKrpwdHfz9onVpncuvW1GopY5zWmtbWVlra2jjW1sacmTPJy8vD7/fbXdq4IAElhBhRWQcP4kokTr4wEkkt5TXGhUIhent7eWXrVi65+GIyMjJkVfcLSAJKCDGyFixAnTKisHy+1DqTY9jQ6KnpyBHaOjuZN2cOBQUFZGZm2l3auGFrQCmlrlFK7VdKHVRKfdHOWoQQI2T16tQ+p8xMtFLEXC72ZGVxaPp0uyv7iwSDQcLhMJv+tIUVS5bg9/upqKiwu6xxxbYmCaWUA/hv4CqgGXhNKfWM1nqPXTUJIUaAw5FqiHjuOdSOHfTX1PDjxkaO/8u/8C//8i9MmzYt/VY/PwvLsmhpaeHgoUNE+qPMnjmToqIi6dy7wOwcQS0GDmqtD2ut48DPgf9jYz1CiJFywgr9uXfcwWc/9zmys7P56le/yltvvcVYOu0PpFaN6O7u5qVXXmHFpZeSmZkp+55GgJ0BVQEcO+H35sHLTqKUulcp1aCUaujs7By14oQQI6eyspK/+7u/w+1287WvfY19+/aNmXX7TNOkra2N1xoa8Pv9zJg6ldLS0gm3MO5oSPsmCa31I1rreq11vaxrJcT4oJRi8uTJ/O3f/i2WZfEf//Ef7N27F9M07S7trNra2mhra+PVhgZWLl9OTk6OHPc0QuwMqONA1Qm/Vw5eJoSYABwOB9OnT+dv/uZviMfj/Pd//zd79uwhcWpLehoZGBigvb2djS+9xLyZM6msqKCyslJWLB8hdr6qrwHTlFK1Sik3cCvwjI31CCFGmdvtZsaMGdx3331Eo1F+8IMfsHfvXuLxuN2lndaxY8fYs2cPbx85wpLFiyksLCQvL8/ussYt2wJKa50E7gfWA3uBX2itd9tVjxDCHn6/n6lTp/KpT32K3t5eHn/8cfbt20csFrO7tJOEw2E6Ojr4/R/+wOUrV1JcXEx1dbXdZY1rto5LtdbPaq2na62naK3/n521CCHsk5+fT3V1Nffccw9dwSA/+clP2LdvHwMDA3aXBqQaI44dO8b69espLimhbt48qqurcblcdpc2rsnEqRAiLZSVlTF58mQ+dvfdtLe3s3btWvbv358WIdXc3ExjYyP79u/n/VdcQUlJiZzKfRRIQAkh0kZ5eTnTpk3jnnvuobm5mZ///Ofs27fP1vNJdXd3c+TIEdatW8fV738/VVVVMrU3SiSghBBppby8nBkzZvDJT36SY83N/PjHP2bPnj1Eo9FRryWZTNLU1MRPfvITZs2axcKFC5kyZYp07Y0SeZWFEGmntLSU2bNn85n77ycSifDwww+zc+dOIpHIqNWgtebw4cM8+eSTJJNJbrjhBiZPnozX6x21GiY6CSghRFrKz89n9uzZfOpTnyI/P59vfOMbNDQ00NPTMyrbb2lp4dlnn2Xfvn3cc8891NbWkp2dPSrbFikSUEKItJWVlcVFF13Exz/+cRYuXMi//du/sX79egKBwIhuNxAIsGHDBp577jk+/elPM2PGDAoKCkZ0m+Kd5JTvQoi05na7mTlzJnfeeSfTpk3jkUce4fDhw3zkIx+hsrLygq+EHgqFeOaZZ/jZz37G3/7t31JXV0dhYeEF3YY4NxJQQoi0p5SiqqqK3NxcysvL+e53v8uXvvQl7rnnHpYtW4bLMFKnkH/9dViwIHUOKofjvLcTCAR47LHH+OMf/8jnP/95li5dSk5Ozgg8I3EuJKCEEGNGVlYWS5cuZdKkSTz55JP827/9G8uXLuXzGzbge+ON1Knk/f7UCRLXrz9zSJnmcKjpujr21dby39/7Hh0dHfzjP/4jCxculIYIm0lACSHGFMMwqKys5DOf+QzLli1j+1e+Alu2pAIHoK8Ptm5Nhc/q1fC970F3d+o6pWD+fHjpJbjpJti6FR2JkHC7iWVmknn33fzd17/OpEmTpJU8DUhACSHGJLfbzSWXXMLCxYtxrl9/0nU6EmHglVfwfuUrqIaGk+/4xhvo3Fy0240Rj6MAdyzGHKX4yiWX4KmtHb0nIc5I/kQQQoxprkWLUH7/SZcNGAZP//KXWKeG04lOWTHdGYvh2bt3JEoU75EElBBibFu9OrXPKTMTlEJnZuJctoxL3/e+8/uA8/uhrm6kqhTvgUzxCSHGNocj1RDx3HOwYweqrg7X6tVMeu45+NGPTnsXBajcXEgmT26sWL16dGsXZ6S01nbXcM7q6+t1w5mG7EIIMcQ0YelSeO21018fDsOmTbBjR2rk9B5b08X5U0pt11rXn+12MsUnhBifHA7405/g4YdPvnz+fOjthZwcWLMGvvzl1HcJp7QjASWEGL8cDrjvvlQY5eSA1qkRU2am3ZWJcyABJYQQIi1JQAkhhEhLElBCCCHSkgSUEGL8M83UEkgbN9pdiTgPElBCiPGvry8VUl//ut2ViPMgASWEmDiOHbO7AnEeJKCE+P/bu7sQueo7jOPfJ5tY2xpbMS2V+BILEZQoVJKivWitSpGACdZWLAS1iAWLvbBFELxoaQullPaiUNCUilqw9QXUBZVAqhJojLgghiTSsk2t3VhwtXZFl2Tz8uvFOWF2huieNTvnf/7/eT4Q9szOYefhl9l55rzsGRsdvkJ5VpL8b0n6tqS9ko5JWvCvic3MlsQSf/quDVeqtxN7gG8COxI9vpmNIhdUVpJcLDYiXoPqY5zNzFrj15ysdH6HrKTvSZqQNDE9PZ06jpnlzAWVlaFtQUnaDnzhBHfdExFPNf05EbEV2ArV1cyXKJ6ZjSKfJJGVoRVURFw9rJ9tZvaxeAsqK347YWZlO3q0t3zsWLoctmipTjO/TtIUcDnwtKRtKXKY2Qg4dKi3fPhwuhy2aKnO4nsCeCLFY5vZiHFBZcu7+MysbPMLam4uXQ5bNBeUmZXNBZUtF5SZlc0FlS0XlJmVzQWVLReUmZXNBZUtF5SZlc0FlS0XlJmVbX5BHTniP9bNiAvKzMo2v6DAfwuVEReUmZVtsKC8my8bLigzK5sLKlsuKDMrmwsqWy4oMyubCypbLigzK5sLKlsuKDMr28GD/bddUNlwQZlZ2d5/v/+2CyobLigzK9sHH/TfdkFlwwVlZmUbLKjBY1LWWS4oMyvbYEHNzqbJYYvmgjKzsg0W1Hvvpclhi+aCMrOyHS8oqfrqgsqGC8rMyjZYUDMz6W+UyLQAAAT2SURBVLLYorigzKxsBw5UX8fGqq/egsrG8tQBWjM7C/v2pU7RTETqBM3kkhPyyZpLTsgj69wc7N9fLY+NVR+1sX07XHttb4vKFmfFCrjkklYeanQKanISNmxIncLMUli2rLcFtXOnXwtOxurVMDXVykMpcngXVJM0DfzrJH/MKuDtJYhTAs+in+fR41n08zx6lmIW50XE5xZaKauCWgqSJiJifeocXeBZ9PM8ejyLfp5HT5uz8EkSZmbWSS4oMzPrpFEsqK2pA3SIZ9HP8+jxLPp5Hj2tzWLkjkGZmVkeRnELyszMMuCCMjOzTiq2oCRdI+lvkiYl3X2C+z8h6ZH6/pckrWk/ZTsazOKHkvZJ2i3pL5LOS5GzLQvNY95610sKScWeXtxkFpJuqJ8feyU93HbGtjT4PTlX0vOSXql/VzamyNkGSfdLekvSng+5X5J+W89qt6RLhxIkIor7B4wB/wC+CJwCvApcNLDO94F76+UbgUdS5044i68Dn6qXby91Fk3nUa+3EtgB7ALWp86d8LmxFngFOKO+/fnUuRPOYitwe718EfB66txDnMdXgUuBPR9y/0bgWUDAZcBLw8hR6hbUl4HJiNgfEXPAn4HNA+tsBh6slx8HrpKKvDjXgrOIiOcj4vinuO0Czm45Y5uaPDcAfgb8EjjYZriWNZnFbcDvIuJdgIh4q+WMbWkyiwBOr5c/A7zZYr5WRcQO4L8fscpm4KGo7AI+K+mspc5RakGtBv497/ZU/b0TrhMRR4AZ4MxW0rWrySzmu5XqnVGpFpxHvbvinIh4us1gCTR5blwAXCDpr5J2SbqmtXTtajKLnwBbJE0BzwA/aCdaJy32deVjGZ2LxdqCJG0B1gNfS50lFUnLgN8AtySO0hXLqXbzXUG1Zb1D0sUR8b+kqdL4DvBARPxa0uXAHyWti4hjqYOVqtQtqAPAOfNun11/74TrSFpOtcn+Tivp2tVkFki6GrgH2BQRh1rKlsJC81gJrANekPQ61f718UJPlGjy3JgCxiPicET8E/g7VWGVpsksbgUeBYiIF4FTqS6cOooava6crFIL6mVgraTzJZ1CdRLE+MA648DN9fK3gOeiPvpXmAVnIelLwH1U5VTqMYbjPnIeETETEasiYk1ErKE6JrcpIibSxB2qJr8nT1JtPSFpFdUuv/1thmxJk1m8AVwFIOlCqoKabjVld4wDN9Vn810GzETEf5b6QYrcxRcRRyTdAWyjOjvn/ojYK+mnwEREjAN/oNpEn6Q6GHhjusTD03AWvwJOAx6rzxN5IyI2JQs9RA3nMRIazmIb8A1J+4CjwF0RUdyehoaz+BHwe0l3Up0wcUuhb2qR9CeqNyar6mNuPwZWAETEvVTH4DYCk8As8N2h5Ch0vmZmlrlSd/GZmVnmXFBmZtZJLigzM+skF5SZmXWSC8rMzDrJBWVmZp3kgjIzs05yQZl1gKQN9efqnCrp0/VnL61LncssJf+hrllHSPo51eVzPglMRcQvEkcyS8oFZdYR9TXgXqb6DKqvRMTRxJHMkvIuPrPuOJPqmogrqbakzEaat6DMOkLSONUnuZ4PnBURdySOZJZUkVczN8uNpJuAwxHxsKQxYKekKyPiudTZzFLxFpSZmXWSj0GZmVknuaDMzKyTXFBmZtZJLigzM+skF5SZmXWSC8rMzDrJBWVmZp30f4owDSE+ZHAhAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x360 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "bayesian_optimizer.plot_acquisition()\n",
    "bayesian_optimizer.plot_convergence()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Obtained xmin:  0.757, real xmin:  0.780 (approximate)\n",
      "Obtained fmin: -6.021, real fmin: -6.000 (approximate)\n"
     ]
    }
   ],
   "source": [
    "print('Obtained xmin:  %.3f, real xmin:  %.3f (approximate)' % (bayesian_optimizer.x_opt, forrester_function.min))\n",
    "print('Obtained fmin: %.3f, real fmin: %.3f (approximate)' % (bayesian_optimizer.fx_opt, forrester_function.fmin))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Problem 1.1\n",
    "\n",
    "Compare various acquisition functions EI, UCB and PI"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 10/10 [01:11<00:00,  7.15s/it]\n",
      "100%|██████████| 10/10 [00:27<00:00,  2.74s/it]\n",
      "100%|██████████| 10/10 [01:43<00:00, 10.39s/it]\n"
     ]
    }
   ],
   "source": [
    "# Your code below. Use EI, UCB and PI acquisition functions\n",
    "number_of_runs = 10\n",
    "obtained_targets_history_EI = []\n",
    "for index in trange(number_of_runs):\n",
    "    seed(index)\n",
    "  \n",
    "    obtained_targets_history_EI.append(utility.run_bayesian_optimization('EI'))\n",
    "\n",
    "# your code below for other criteria\n",
    "obtained_targets_history_UCB = []\n",
    "for index in trange(number_of_runs):\n",
    "    seed(index)\n",
    "  \n",
    "    obtained_targets_history_UCB.append(utility.run_bayesian_optimization('UCB'))\n",
    "    \n",
    "obtained_targets_history_PI = []\n",
    "for index in trange(number_of_runs):\n",
    "    seed(index)\n",
    "  \n",
    "    obtained_targets_history_PI.append(utility.run_bayesian_optimization('PI'))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "initial_sample_size = 5\n",
    "obtained_targets_history_EI = np.array(obtained_targets_history_EI)\n",
    "obtained_targets_history_UCB = np.array(obtained_targets_history_UCB)\n",
    "obtained_targets_history_PI = np.array(obtained_targets_history_PI)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(10, 15)"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.shape(obtained_targets_history_EI)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "obtained_targets_history_EI_cut = obtained_targets_history_EI[:, initial_sample_size:]\n",
    "obtained_targets_history_UCB_cut = obtained_targets_history_UCB[:, initial_sample_size:]\n",
    "obtained_targets_history_PI_cut = obtained_targets_history_PI[:, initial_sample_size:]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x7fc89e57c588>"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "interations_number = 10\n",
    "iterations = range(interations_number)\n",
    "\n",
    "lower_percentile = 25 \n",
    "upper_percentile = 75 \n",
    "\n",
    "plt.plot(iterations, np.mean(obtained_targets_history_EI_cut, axis=0), label='EI')\n",
    "plt.fill_between(iterations, \n",
    "                 np.percentile(obtained_targets_history_EI_cut, axis=0, q=lower_percentile),\n",
    "                 np.percentile(obtained_targets_history_EI_cut, axis=0, q=upper_percentile), alpha=0.3)\n",
    "\n",
    "plt.plot(iterations, np.mean(obtained_targets_history_UCB_cut, axis=0), label='UCB')        \n",
    "plt.fill_between(iterations, \n",
    "                 np.percentile(obtained_targets_history_UCB_cut, axis=0, q=lower_percentile),\n",
    "                 np.percentile(obtained_targets_history_UCB_cut, axis=0, q=upper_percentile), alpha=0.3)\n",
    "\n",
    "plt.plot(iterations, np.mean(obtained_targets_history_PI_cut, axis=0), label='PI')\n",
    "plt.fill_between(iterations, \n",
    "                 np.percentile(obtained_targets_history_PI_cut, axis=0, q=lower_percentile),\n",
    "                 np.percentile(obtained_targets_history_PI_cut, axis=0, q=upper_percentile), alpha=0.3)\n",
    "plt.legend(loc='upper right')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Problem 1.2 \n",
    "\n",
    "Select the best $\\beta$ for UCB acquisition function wrt mean regret."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 5/5 [00:13<00:00,  2.74s/it]\n",
      "100%|██████████| 5/5 [00:12<00:00,  2.47s/it]\n",
      "100%|██████████| 5/5 [00:12<00:00,  2.59s/it]\n",
      "100%|██████████| 5/5 [00:12<00:00,  2.55s/it]\n",
      "100%|██████████| 5/5 [00:12<00:00,  2.51s/it]\n"
     ]
    }
   ],
   "source": [
    "# TODO select different values of beta to get the best one\n",
    "number_of_runs = 5\n",
    "obtained_targets_history_beta = []\n",
    "beta_space = np.logspace(0.1, 10, 5)\n",
    "for beta in beta_space:\n",
    "    obtained_targets_history_UCB = []\n",
    "    for index in trange(number_of_runs):\n",
    "        seed(index)\n",
    "\n",
    "        obtained_targets_history_UCB.append(utility.run_bayesian_optimization('UCB', beta=beta))\n",
    "    obtained_targets_history_beta.append(obtained_targets_history_UCB)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x2648700cc88>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.semilogx(beta_space, [np.mean(np.array(x)[:, -1]) for x in obtained_targets_history_beta], '-o');"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 4. Bayesian optimization for the parameters of Gradient boosting\n",
    "\n",
    "Now we optimize hyperparameters for Gradient boosting of decision trees."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "from sklearn.model_selection import cross_validate\n",
    "from sklearn.model_selection import ShuffleSplit\n",
    "from sklearn.metrics import roc_auc_score"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "If lightgbm is not installed, please run the following cell"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "!pip install lightgbm"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import lightgbm as lgb"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### We predict defaults for the classification problem\n",
    "\n",
    "The goal is to predict if the two years absense of payments occur."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 5001 entries, 0 to 5000\n",
      "Data columns (total 11 columns):\n",
      "SeriousDlqin2yrs                        5001 non-null int64\n",
      "RevolvingUtilizationOfUnsecuredLines    5001 non-null float64\n",
      "age                                     5001 non-null int64\n",
      "NumberOfTime30-59DaysPastDueNotWorse    5001 non-null int64\n",
      "DebtRatio                               5001 non-null float64\n",
      "MonthlyIncome                           4031 non-null float64\n",
      "NumberOfOpenCreditLinesAndLoans         5001 non-null int64\n",
      "NumberOfTimes90DaysLate                 5001 non-null int64\n",
      "NumberRealEstateLoansOrLines            5001 non-null int64\n",
      "NumberOfTime60-89DaysPastDueNotWorse    5001 non-null int64\n",
      "NumberOfDependents                      4859 non-null float64\n",
      "dtypes: float64(4), int64(7)\n",
      "memory usage: 429.9 KB\n"
     ]
    }
   ],
   "source": [
    "# Load the training sample\n",
    "data = pd.read_csv('training_data.csv')\n",
    "data.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "points = data[['RevolvingUtilizationOfUnsecuredLines', 'age',\n",
    "       'NumberOfTime30-59DaysPastDueNotWorse', 'DebtRatio', 'MonthlyIncome',\n",
    "       'NumberOfOpenCreditLinesAndLoans', 'NumberOfTimes90DaysLate',\n",
    "       'NumberRealEstateLoansOrLines', 'NumberOfTime60-89DaysPastDueNotWorse',\n",
    "       'NumberOfDependents']]\n",
    "targets = data['SeriousDlqin2yrs']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "lgb_ensemble = lgb.LGBMClassifier()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.8101415850260475\n"
     ]
    }
   ],
   "source": [
    "cross_validation_result = cross_validate(lgb_ensemble, \n",
    "                                         points, targets, \n",
    "                                         scoring='roc_auc')\n",
    "print(np.mean(cross_validation_result['test_score']))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# Define the region\n",
    "hyperparameters_space = [{'name': 'learning_rate', 'type': 'continuous', 'domain': (0.05, 0.2)},\n",
    "         {'name': 'n_estimators', 'type': 'discrete', 'domain': np.arange(10, 200)},\n",
    "         {'name': 'subsample', 'type': 'continuous', 'domain': (0.75, 1.)}]\n",
    "# We are interested in the following variables:\n",
    "# 'continuous', \n",
    "# 'discrete', \n",
    "# 'categorical',\n",
    "\n",
    "hyperparameters_design_region = GPyOpt.Design_space(space=hyperparameters_space)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def get_cv_quality(model_parameters_list):\n",
    "    r\"\"\"\n",
    "  \n",
    "    Quality of model using given hyperparameters\n",
    "\n",
    "    Inputs\n",
    "    --------\n",
    "    model_parameters : np.array\n",
    "      numpy array of hyperparameteres specified in the same way as a domain\n",
    "\n",
    "    Outputs\n",
    "    --------\n",
    "    minus_roc_auc : float\n",
    "      minus mean value of ROC AUC calculated via cross validation\n",
    "    \"\"\"\n",
    "    test_score_list = []\n",
    "    for model_parameters in model_parameters_list:\n",
    "        classification_model = lgb.LGBMClassifier()\n",
    "\n",
    "        dict_model_parameters = dict(zip([element['name'] for element in hyperparameters_space], \n",
    "                                         model_parameters))\n",
    "      \n",
    "        # transform types to int for discrete variables\n",
    "        for key in dict_model_parameters:\n",
    "            hyperparameter_description = [x for x in hyperparameters_space if x['name'] == key][0]\n",
    "            if hyperparameter_description['type'] == 'discrete':\n",
    "                dict_model_parameters[key] = int(dict_model_parameters[key])\n",
    "            \n",
    "        classification_model.set_params(**dict_model_parameters)\n",
    "        test_score = -np.mean(cross_validate(classification_model, \n",
    "                              points, targets, scoring='roc_auc')['test_score'])\n",
    "        test_score_list.append(test_score)\n",
    "    return test_score"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "-0.8101415850260475"
      ]
     },
     "execution_count": 52,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "get_cv_quality([[]])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "-0.8357286819716725"
      ]
     },
     "execution_count": 48,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "get_cv_quality([[0.1, 20., 0.9]])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Run Bayesian optimization"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "hyperparameters_optimization_problem = GPyOpt.methods.BayesianOptimization(get_cv_quality,  # function to optimize       \n",
    "                                          domain=hyperparameters_space,         # box-constrains of the problem\n",
    "                                          acquisition_type='EI')   # Exploration exploitation\n",
    "hyperparameters_optimization_problem.run_optimization(max_iter=50)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(hyperparameters_optimization_problem.Y);"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x360 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "hyperparameters_optimization_problem.plot_convergence()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Validate parameters using a test sample"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# Load the testing sample\n",
    "test_data = pd.read_csv('test_data.csv')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "test_points = test_data[['RevolvingUtilizationOfUnsecuredLines', 'age',\n",
    "       'NumberOfTime30-59DaysPastDueNotWorse', 'DebtRatio', 'MonthlyIncome',\n",
    "       'NumberOfOpenCreditLinesAndLoans', 'NumberOfTimes90DaysLate',\n",
    "       'NumberRealEstateLoansOrLines', 'NumberOfTime60-89DaysPastDueNotWorse',\n",
    "       'NumberOfDependents']]\n",
    "test_targets = test_data['SeriousDlqin2yrs']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.8028561649532023\n"
     ]
    }
   ],
   "source": [
    "initial_model = lgb.LGBMClassifier()\n",
    "initial_model.fit(points, targets)\n",
    "test_predicted_probabilities = initial_model.predict_proba(test_points)[:, 1]\n",
    "print(roc_auc_score(test_targets, test_predicted_probabilities))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ 0.05, 27.  ,  0.75])"
      ]
     },
     "execution_count": 58,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "hyperparameters_optimization_problem.x_opt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.8255321122633724\n"
     ]
    }
   ],
   "source": [
    "best_model = lgb.LGBMClassifier(learning_rate=hyperparameters_optimization_problem.x_opt[0], \n",
    "                                n_estimators=int(hyperparameters_optimization_problem.x_opt[1]),\n",
    "                                subsample=hyperparameters_optimization_problem.x_opt[2])\n",
    "best_model.fit(points, targets)\n",
    "test_predicted_probabilities = best_model.predict_proba(test_points)[:, 1]\n",
    "print(roc_auc_score(test_targets, test_predicted_probabilities))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Problem 2.1 \n",
    "\n",
    "Try to optimize another parameter of Gradient boosting"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x26486eccf98>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# TODO define another hyperparameters space and optimise hyperparameters in it\n",
    "hyperparameters_space = [{'name': 'learning_rate', 'type': 'continuous', 'domain': (0.05, 0.2)},\n",
    "                         {'name': 'n_estimators', 'type': 'discrete', 'domain': np.arange(10, 200)},\n",
    "                         {'name': 'subsample', 'type': 'continuous', 'domain': (0.75, 1.)},\n",
    "                         {'name': 'max_depth', 'type': 'discrete', 'domain': np.arange(1, 10)}]\n",
    "\n",
    "hyperparameters_optimization_problem = GPyOpt.methods.BayesianOptimization(get_cv_quality,  # function to optimize       \n",
    "                                          domain=hyperparameters_space,         # box-constrains of the problem\n",
    "                                          acquisition_type='EI')   # Exploration exploitation\n",
    "hyperparameters_optimization_problem.run_optimization(max_iter=50)\n",
    "hyperparameters_optimization_problem.plot_convergence()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.8292644151723167\n"
     ]
    }
   ],
   "source": [
    "best_model = lgb.LGBMClassifier(learning_rate=hyperparameters_optimization_problem.x_opt[0], \n",
    "                                n_estimators=int(hyperparameters_optimization_problem.x_opt[1]),\n",
    "                                subsample=hyperparameters_optimization_problem.x_opt[2],\n",
    "                                max_depth=int(hyperparameters_optimization_problem.x_opt[3]))\n",
    "best_model.fit(points, targets)\n",
    "test_predicted_probabilities = best_model.predict_proba(test_points)[:, 1]\n",
    "print(roc_auc_score(test_targets, test_predicted_probabilities))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Problem 2.2\n",
    "\n",
    "Compare with GridSearchCV"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "from sklearn.model_selection import GridSearchCV"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    " 'learning_rate', 'type': 'continuous', 'domain': (0.05, 0.2)},\n",
    "                         {'name': 'n_estimators', 'type': 'discrete', 'domain': np.arange(10, 200)},\n",
    "                         {'name': 'subsample', 'type': 'continuous', 'domain': (0.75, 1.)},\n",
    "                         {'name': 'max_depth', 'type': 'discrete', 'domain': np.arange(1, 10)}]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "GridSearchCV(cv=None, error_score='raise',\n",
       "       estimator=LGBMClassifier(boosting_type='gbdt', colsample_bytree=1, learning_rate=0.1,\n",
       "        max_bin=255, max_depth=-1, min_child_samples=10,\n",
       "        min_child_weight=5, min_split_gain=0, n_estimators=10, nthread=-1,\n",
       "        num_leaves=31, objective='binary', reg_alpha=0, reg_lambda=0,\n",
       "        seed=0, silent=True, subsample=1, subsample_for_bin=50000,\n",
       "        subsample_freq=1),\n",
       "       fit_params=None, iid=True, n_jobs=1,\n",
       "       param_grid={'learning_rate': [0.05, 0.1, 0.15, 0.2], 'n_estimators': [10, 50, 100, 200], 'subsample': [0.75, 0.8, 0.9, 1]},\n",
       "       pre_dispatch='2*n_jobs', refit=True, return_train_score=True,\n",
       "       scoring='roc_auc', verbose=0)"
      ]
     },
     "execution_count": 46,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "parameters_grid = {'learning_rate' : [0.05, 0.1, 0.15, 0.2], \n",
    "                   'n_estimators' : [10, 50, 100, 200],\n",
    "                   'subsample' : [0.75, 0.8, 0.9, 1]}\n",
    "grid_search_procedure = GridSearchCV(lgb.LGBMClassifier(), parameters_grid, scoring='roc_auc')\n",
    "grid_search_procedure.fit(points, targets)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "LGBMClassifier(boosting_type='gbdt', colsample_bytree=1, learning_rate=0.05,\n",
       "        max_bin=255, max_depth=-1, min_child_samples=10,\n",
       "        min_child_weight=5, min_split_gain=0, n_estimators=50, nthread=-1,\n",
       "        num_leaves=31, objective='binary', reg_alpha=0, reg_lambda=0,\n",
       "        seed=0, silent=True, subsample=0.8, subsample_for_bin=50000,\n",
       "        subsample_freq=1)"
      ]
     },
     "execution_count": 47,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "grid_search_procedure.best_estimator_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.8296783335785709\n"
     ]
    }
   ],
   "source": [
    "grid_search_classifier = grid_search_procedure.best_estimator_.fit(points, targets)\n",
    "test_predicted_probabilities = grid_search_classifier.predict_proba(test_points)[:, 1]\n",
    "print(roc_auc_score(test_targets, test_predicted_probabilities))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Bonus"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Optimization details\n",
    "\n",
    "Use optimization algorithm.\n",
    "We use multistart combined with L-BFGS.\n",
    "\n",
    "Multistart procedure:\n",
    "1. Generate an initial sample $x_1, \\ldots, x_n$. Evaluation the acquisation function at each point and get $(a(x_1), \\ldots, a(x_n))$.\n",
    "2. Select $k$ best points.\n",
    "3. Use each point as the initial point for running (L-BFGS) and get $k$.\n",
    "4. Select the best point."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### L-BFGS \n",
    "\n",
    "Quasi-Newton optimization using Taylor series up to the second order\n",
    "$$\n",
    "f(x_k + p) \\approx f(x_k) + \\nabla f^T(x_k) p + \\frac12 p^T \\mathbf{H}p\n",
    "$$\n",
    "$$\n",
    "p = -\\mathbf{H}^{-1}\\nabla f^T(x_k) \\approx -\\mathbf{B}_k^{-1} \\nabla f^T(x_k),\n",
    "$$\n",
    "where $\\mathbf{B}_k$ is an approximation of Hessian $\\mathbf{H}$.\n",
    "\n",
    "We update $\\mathbf{B}_k$ using the following rule:\n",
    "$$\n",
    "\\mathbf{B}_{k + 1} = \\mathbf{B}_k - \\frac{\\mathbf{B}_k s_k s_k^T \\mathbf{B}_k}{s_k^T \\mathbf{B}_k s_k} + \\frac{y_k y_k^T}{y_k^T s_k},\n",
    "$$\n",
    "where $s_k = x_{k + 1} - x_k$, $y_k = \\nabla f(x_{k + 1}) - \\nabla f(x_k)$."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
